package com.资源释放的方式;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 使用finally释放资源
 */

public class finallyDemo1 {
    public static void main(String[] args) {
        //1.新建一个写入管道(输出要复制的文件地址)
        FileInputStream file= null;
        FileOutputStream out=null;
        try {
            file = new FileInputStream("F:\\BaiduNetdiskDownload\\5088 45套-欧美杂志风相册PPT\\PPT模板\\欧美风通用PPT（加微送千套xd2321）1.jpg");
            //2.新建一个输出管道(目标文件，要加上自定义文件名)
            out=new FileOutputStream("D:\\003\\1.jpg");

            //定义一个整数获取读取字节的数量
            int len=0;
            byte []bytes=new byte[1024];//默认每次读取1024字节的数据
            //读文件
            while ((len=file.read(bytes))!=-1){
                //4.写入目标文件
                out.write(bytes,0,len);//每次写入数组的所有值，最后一次数组是不满的，不能直接输出
            }
            System.out.println("复制完毕！");
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {

            //5.关闭资源(先里后外)
            try {
                //非空校验（要是流为空，关闭也会出现问题）
                if (out!=null)
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                //非空校验（要是流为空，关闭也会出现问题）
                if (file!=null)
                file.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("===============finally=================");
        }


    }
}
